Elasticsearch এ Metric Aggregation এবং Bucket Aggregation হল দুটি প্রধান ধরনের অ্যাগ্রিগেশন যা ডেটা বিশ্লেষণ এবং উপস্থাপন করতে ব্যবহৃত হয়। এগুলো Elasticsearch এর অ্যাগ্রিগেশন API এর অংশ এবং ডেটা গ্রুপিং ও মেট্রিক ক্যালকুলেশনের মাধ্যমে ডেটা বিশ্লেষণ সহজ করে। নিচে Metric এবং Bucket Aggregation এর বেসিক ধারণা এবং তাদের ব্যবহারের উদাহরণ নিয়ে আলোচনা করা হলো:

1. Metric Aggregation

Metric Aggregation সাধারণত সংখ্যাগত ডেটা থেকে মেট্রিক্স (গড়, সর্বনিম্ন, সর্বোচ্চ, সংখ্যা, যোগফল ইত্যাদি) ক্যালকুলেট করে। এটি ডেটার উপরে নির্দিষ্ট গণনা বা পরিমাপ করে এবং একটি নির্দিষ্ট ভ্যালু প্রদান করে।

প্রকারভেদ:

  • avg: গড় (average) বের করে।
  • sum: সমস্ত মানের যোগফল (sum) বের করে।
  • min: সর্বনিম্ন (minimum) মান বের করে।
  • max: সর্বোচ্চ (maximum) মান বের করে।
  • value_count: একটি ফিল্ডের ভ্যালুগুলোর সংখ্যা গণনা করে।
  • stats: গড়, সর্বনিম্ন, সর্বোচ্চ, সংখ্যা, এবং যোগফল সবগুলো একসাথে বের করে।

উদাহরণ:

GET /sales/_search
{
  "size": 0,
  "aggs": {
    "average_price": {
      "avg": {
        "field": "price"
      }
    }
  }
}

উপরের উদাহরণে, sales ইনডেক্সে price ফিল্ডের উপর ভিত্তি করে গড় (average) বের করা হচ্ছে। size 0 দেওয়া হয়েছে কারণ আমরা শুধু অ্যাগ্রিগেশন রেজাল্ট পেতে চাই, ডকুমেন্ট নয়।

2. Bucket Aggregation

Bucket Aggregation ডেটা কে গ্রুপ বা bucket আকারে বিভক্ত করে, যেখানে প্রতিটি bucket কিছু নির্দিষ্ট ক্রাইটেরিয়া পূরণ করে। এক একটি bucket এ পড়া ডকুমেন্টগুলোকে একত্রিত করে পরবর্তী বিশ্লেষণ করা যায়। এটি সাধারণত ডেটাকে গ্রুপ করার জন্য ব্যবহৃত হয় এবং প্রতিটি bucket এর মধ্যে আরও সাব-অ্যাগ্রিগেশন প্রয়োগ করা যেতে পারে।

প্রকারভেদ:

  • terms: একটি ফিল্ডের ইউনিক ভ্যালু (যেমন, category) দ্বারা ডেটা গ্রুপ করে।
  • range: নির্দিষ্ট রেঞ্জের মধ্যে ডেটা গ্রুপ করে (যেমন, মূল্য বা তারিখের রেঞ্জ)।
  • date_histogram: একটি তারিখ ফিল্ডের উপর ভিত্তি করে ডেটাকে টাইম ইন্টারভালে (যেমন, দিন, মাস, বছর) গ্রুপ করে।
  • histogram: সংখ্যা ফিল্ডের নির্দিষ্ট রেঞ্জ বা ব্যান্ডের উপর ভিত্তি করে ডেটা গ্রুপ করে।

উদাহরণ:

GET /sales/_search
{
  "size": 0,
  "aggs": {
    "sales_by_category": {
      "terms": {
        "field": "category.keyword"
      },
      "aggs": {
        "average_price_per_category": {
          "avg": {
            "field": "price"
          }
        }
      }
    }
  }
}

এই উদাহরণে:

  • terms bucket aggregation category.keyword ফিল্ডে বিভিন্ন ইউনিক ক্যাটাগরি দ্বারা ডেটাকে গ্রুপ করছে।
  • প্রতিটি bucket (অর্থাৎ, প্রতিটি ক্যাটাগরি) এর জন্য, একটি avg মেট্রিক অ্যাগ্রিগেশন ব্যবহার করে ঐ ক্যাটাগরির গড় মূল্য বের করা হচ্ছে।

Metric এবং Bucket Aggregation এর পার্থক্য

  • Metric Aggregation সরাসরি মেট্রিক্স ক্যালকুলেট করে (যেমন, গড়, সর্বোচ্চ, সর্বনিম্ন) এবং একটি নির্দিষ্ট সংখ্যা বা ভ্যালু রিটার্ন করে।
  • Bucket Aggregation ডেটাকে গ্রুপ করে bucket তৈরি করে, এবং প্রতিটি bucket এর মধ্যে নির্দিষ্ট শর্ত পূরণ করা ডকুমেন্টগুলো থাকে। আপনি প্রতিটি bucket এর মধ্যে আরও মেট্রিক অ্যাগ্রিগেশন বা সাব-বাকেট অ্যাগ্রিগেশন করতে পারেন।

Metric এবং Bucket Aggregation এর কম্বিনেশন

Elasticsearch এ অনেক সময় Metric এবং Bucket Aggregation একসাথে ব্যবহার করা হয়। প্রথমে ডেটা কে গ্রুপ (bucket) করে এবং প্রতিটি bucket এর উপরে মেট্রিক অ্যাগ্রিগেশন প্রয়োগ করে ডেটা বিশ্লেষণ করা যায়।

উদাহরণ:

GET /sales/_search
{
  "size": 0,
  "aggs": {
    "sales_over_time": {
      "date_histogram": {
        "field": "sale_date",
        "calendar_interval": "month"
      },
      "aggs": {
        "total_sales": {
          "sum": {
            "field": "amount"
          }
        }
      }
    }
  }
}

এই উদাহরণে:

  • date_histogram bucket aggregation sale_date ফিল্ডের উপর ভিত্তি করে প্রতি মাসের জন্য একটি bucket তৈরি করছে।
  • প্রতিটি মাসের bucket এ sum মেট্রিক অ্যাগ্রিগেশন ব্যবহার করে মোট বিক্রয়ের পরিমাণ বের করছে।

উপসংহার

  • Metric Aggregation সাধারণত সংখ্যা এবং মেট্রিক্স ক্যালকুলেশনের জন্য ব্যবহার হয়।
  • Bucket Aggregation ডেটা কে গ্রুপ এবং ক্লাসিফাই করতে ব্যবহার হয় এবং প্রতিটি bucket এর মধ্যে আরও বিশ্লেষণ বা অ্যাগ্রিগেশন করা যায়।

Elasticsearch এর অ্যাগ্রিগেশন সিস্টেম ডেটা বিশ্লেষণ ও উপস্থাপনে অত্যন্ত কার্যকর, এবং এর মাধ্যমে ডেটা থেকে অনেক গুরুত্বপূর্ণ ইনসাইট পাওয়া সম্ভব।

Content added By

আরও দেখুন...

Promotion